<!DOCTYPE html>
<html class="x-admin-sm">
<head>
    <meta charset="UTF-8">
    <title>宇成建筑</title>
    <meta name="renderer" content="webkit">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <link rel="stylesheet" href="../statics/css/font.css">
    <link rel="stylesheet" href="../statics/plugins/layui/css/layui.css">
    <link rel="stylesheet" href="../statics/css/xadmin.css">
    <link rel="stylesheet" href="../statics/css/style.css">
</head>

<body class='labelAuto'>
    <div class="x-nav">
        <span class="layui-breadcrumb">
            <a href="welcome.html">首页</a>
            <a href="javascript:;">账号管理</a>
            <a>
                <cite>角色列表</cite>
            </a>
        </span>
        <a class="layui-btn layui-btn-small" style="line-height:1.6em;margin-top:3px;float:right"
            onclick="location.reload()" title="刷新">
            <i class="layui-icon layui-icon-refresh" style="line-height:30px"></i>
        </a>
    </div>
    <div class="layui-fluid">
        <div class="layui-d layui-col-space15">
            <div class="layui-col-md12">
                <div class="layui-card">
                    <div class="layui-card-body search">
                        <form action="" class="layui-form livingList">
                            <div class="layui-form-item">
                                <div class="layui-inline">
                                    <label class="layui-form-label">角色类型</label>
                                    <div class="layui-input-block">
                                        <select name="" id="roleType">
                                            <option value="null">-</option>
                                            <option value="1">公司</option>
                                            <option value="2">项目</option>
                                        </select>
                                    </div>
                                </div>
                                <div class="layui-inline">
                                    <label class="layui-form-label">搜索</label>
                                    <div class="layui-input-block">
                                        <input type="search" autocomplete="off" class="layui-input">
                                    </div>
                                </div>
                                <div class="layui-inline">
                                    <button class="layui-btn search" type="button" id='search'>
                                        <i class="iconfont layui-icon">&#xe615;</i>
                                    </button>
                                </div>
                            </div>
                        </form>
                    </div>
                    <div class="layui-card-body tableCardBody">
                        <table class="layui-table" id="lists" lay-filter="test"></table>
                    </div>
                </div>
            </div>
        </div>
    </div>
</body>
<script src="../statics/plugins/layui/layui.js" charset="utf-8"></script>
<script src='../statics/plugins/jQuery-3.2.1/jquery-3.2.1.min.js'></script>
<script type="text/javascript" src="../statics/plugins/X-admin/xadmin.js"></script>
<script type="text/javascript" src="../statics/js/public.js?v=1129"></script>
<script type="text/html" id='toolbar'>
    <button class="layui-btn add" auth='roleAdd'>
        添加角色
    </button>
</script>
<script type="text/javascript">
    layui.use(['form', 'layer', "table", "laydate"], function () {
        var table = layui.table;
        var form = layui.form;
        var laydate = layui.laydate;
        var layer = layui.layer;
        // 异步数据加载
        var lists = table.render({
            elem: '#lists', //绑定DOM元素
            id: 'lists', //table的id
            title: '人员列表',
            height: 'full-150',
            contentType: "application/json; charset=utf-8",
            url: url + '/auth/role/lists', //数据接口地址
            request: {
                pageName: 'page', //页码的参数名称，默认：page
                limitName: 'length' //每页数据量的参数名，默认：limit
            },
            method: 'POST',
            parseData: function(res){
				return {
					"code": res.code, //解析接口状态
                    "data": res.data.data,
                    "msg": res.msg,
                    "count":res.data.count
				};
            },
            where: {
                search:"",
                isProject:null,
                token:getToken()
            },
            toolbar: '#toolbar',
            defaultToolbar: ['filter'],
            page: true, //开启分页
            limit: 10, //默认每页记录条数
            limits: [10, 20, 50], //每页记录条数可选数量
            cols: [
                [ //表头
                    { field: '', title: '编号', type: 'numbers',width:'8%',fixed:'left'},
                    { field: 'name', title: '角色名称',width:'13%'},
                    { field: 'isProject', title: '角色类型',width:'8%',templet:function(d){
                        return `${d.isProject==1?"公司":"项目"}`
                    }},
                    { field: 'remark', title: '备注',width:'30%'},
                    { field: 'status', title: '状态',width:"10%",templet:function(d){
                        return `<button class='layui-btn status ${d.status==1?"layui-btn-normal":"layui-btn-danger"}' lay-event='status'>${d.status==1?"使用中":"已停用"}</button>`
                    }},
                    { field: '', title: '操作',fixed:'right',width:"31.3%",templet(d){
                        if(d.id==1){
                            return "";
                        }else{
                            return `
                                <button class='bianji layui-btn' auth='roleEdit' lay-event='bianji'>编辑</button>
                                <button class='shezhi layui-btn layui-btn-warm' auth='rolePermission' lay-event='shezhi'>设置权限</button>
                                <button class='remove layui-btn layui-btn-danger' auth='roleDel' lay-event='remove'>删除</button>
                            `
                        }
                    }}
                ]
            ],
            response: {
                statusName: 'code', //数据状态的字段名称，默认：code
                statusCode: 100000, //成功的状态码，默认：0
                msgName: 'msg', //状态信息的字段名称，默认：msg
                countName: 'count', //数据总数的字段名称，默认：count
                dataName: 'data' //数据列表的字段名称，默认：data
            },
            done:function(){
                permission();
            }
        });

        table.on('tool(test)',function(data){
            if(data.event=='bianji'){
                layer.open({
                    type: 1,
                    title: "编辑",
                    area: ['40%','80%'],
                    content: `
                        <form class="layui-form layerOpen">
                            <div class="layui-item">
                                <div class="layui-inline">
                                    <label class="layui-form-label">角色名称</label>
                                    <div class="layui-input-block">
                                        <input type="text" class="layui-input" id="name" value=${data.data.name}>
                                    </div>
                                </div>
                            </div>
                            <div class="layui-item">
                                <div class="layui-inline">
                                    <label class="layui-form-label">角色类型</label>
                                    <div class="layui-input-block" id='isProject'>
                                        <input type="radio" name='isProject' title='公司' data-status='1' ${data.data.isProject==1?"checked":""}>
                                        <input type="radio" name='isProject' title='项目' data-status='2' ${data.data.isProject==2?"checked":""}>
                                    </div>
                                </div>
                            </div>
                            <div class="layui-item">
                                <div class="layui-inline">
                                    <label class="layui-form-label">备注</label>
                                    <div class="layui-input-block">
                                        <textarea id='remark' class='layui-textarea'>${data.data.remark==null?"":data.data.remark}</textarea>
                                    </div>
                                </div>
                            </div>
                        </form>
                    `,
                    btn: ['确认', '取消'],
                    skin: 'my-skin',
                    success:function(){
                        for(var i=0;i<$('#profession option').length;i++){
                            if(data.data.professionId==$('#profession option').eq(i).val()){
                                $('#profession option').eq(i).prop('selected','selected');
                            }
                        }
                        form.render();
                    },
                    yes: function(index, layero) {
                        var name = $('#name').val();
                        var remark = $('#remark').val();
                        var isProject = Number($('#isProject input:checked').data('status'));
                        $.ajax({
                            url: url + "/auth/role/edit",
                            type: "POST",
                            contentType:'application/json',
                            data: JSON.stringify({
                                id:data.data.id,
                                name: name,
                                remark: remark,
                                isProject: isProject,
                                token: getToken()
                            }),
                            success: function(r) {
                                if(r.code == 100000) {
                                    tips('编辑角色',r);
                                    setTimeout(function(){
                                        layer.closeAll();
                                        table.reload('lists');
                                    },2000)
                                } else {
                                    tips('编辑角色',r);
                                }
                            }
                        })
                    }
                })
            }else if(data.event=="shezhi"){
                var id=data.data.isProject;
                var roleId=data.data.id;
                var name=data.data.name;
                localStorage.setItem('permission_id',id);
                localStorage.setItem('name',name);
                localStorage.setItem('roleId',roleId);
                window.location.href='permission.html';
            }else if(data.event=='remove'){
                layer.open({
                    type: 1,
                    title: "删除",
                    area: ['40%','20%'],
                    content: `
                        <form class="layui-form layerOpen">
                            <div class="layui-item">
                                <div class="layui-inline">
                                    <label class="layui-form-label">确定删除吗？</label>
                                </div>
                            </div>
                        </form>
                    `,
                    btn: ['确认', '取消'],
                    skin: 'my-skin',
                    yes: function(index, layero) {
                        var name = $('#name').val();
                        var remark = $('#remark').val();
                        var isProject = Number($('#isProject input:checked').data('status'));
                        var professionId=Number($('#profession option:selected').val());
                        $.ajax({
                            url: url + "/auth/role/delete",
                            type: "POST",
                            data: {
                                id:data.data.id,
                                token: getToken()
                            },
                            success: function(r) {
                                if(r.code == 100000) {
                                    tips('删除角色',r);
                                    setTimeout(function(){
                                        layer.closeAll();
                                        table.reload('lists');
                                    },2000)
                                } else {
                                    tips('删除角色',r);
                                }
                            }
                        })
                    }
                })
            }else if(data.event=='status'){
                $.ajax({
                    url:url+'/auth/role/editStatus',
                    type:"post",
                    data:{
                        id:data.data.id,
                        status:data.data.status==0?1:0,
                        token:getToken()
                    },
                    success:function(r){
                        if(r.code==100000){
                            table.reload('lists');
                        }else{
                            tips('修改角色状态',r);
                        }
                    }
                })
            }
        })

        $('body').on('click','#search',function(){
            var search=$(this).parent().prev().find('input').val();
            table.reload('lists',{
                page: {
                    curr: 1 //重新从第 1 页开始
                },
                where:{
                    "search":search,
                    "isProject":$('#roleType option:selected').val()=='null'?null:Number($('#roleType option:selected').val())
                }
            })
        })
        $('body').on('click','.add',function(){
            layer.open({
                title:'添加角色',
                area:['40%','80%'],
                content:`
                    <form class="layui-form layerOpen">
                        <div class="layui-item">
                            <div class="layui-inline">
                                <label class="layui-form-label">角色名称</label>
                                <div class="layui-input-block">
                                    <input type="text" class="layui-input" id="name">
                                </div>
                            </div>
                        </div>
                        <div class="layui-item">
                            <div class="layui-inline">
                                <label class="layui-form-label">角色类型</label>
                                <div class="layui-input-block" id='isProject'>
                                    <input type="radio" name='isProject' title='公司' data-status='1' checked>
                                    <input type="radio" name='isProject' title='项目' data-status='2'>
                                </div>
                            </div>
                        </div>
                        <div class="layui-item">
                            <div class="layui-inline">
                                <label class="layui-form-label">备注</label>
                                <div class="layui-input-block">
                                    <textarea id='remark' class='layui-textarea'></textarea>
                                </div>
                            </div>
                        </div>
                    </form>
                `,
                btn:['确定','取消'],
                success:function(){
                    form.render();
                },
                yes:function(){
                    var name = $('#name').val();
                    var remark = $('#remark').val();
                    var isProject = Number($('#isProject input:checked').data('status'));
                    $.ajax({
                        url: url + "/auth/role/add",
                        type: "POST",
                        contentType:"application/json",
                        data:JSON.stringify({
                            name: name,
                            remark: remark,
                            isProject: isProject,
                            token:getToken()
                        }),
                        success: function(r) {
                            if(r.code == 100000) {
                                tips('添加角色',r);
                                setTimeout(function(){
                                    table.reload('lists');
                                    layer.closeAll();
                                },2000)
                            } else {
                                tips('添加角色',r);
                            }
                        }
                    })
                }
            })

        })
        
    });
</script>

</html>